Currently, microelectromechanical systems (MEMS) gyroscopes, or gyros, are widely used for free space navigation. The gyro reports position information based on the change in capacitance. To create a three-dimensional (3D) gaming controller 12, as shown in the navigation system 10 of FIG. 1, a complimentary metal-oxide-semiconductor (CMOS) image sensor is used together with the gyro. Both the image sensor and the gyro are located within the controller 12. The image sensor navigates with respect to a beacon 14, which includes two light source clusters 16. Based on the relative position of the image sensor to the beacon 14, the controller 12 outputs x, y, and z positions along an x axis 18, a y axis 20, and a z axis 22. When the beacon 14 is outside the field of view (FOV) of the image sensor, the gyro takes over and reports the gross motion of the controller 12.
However, there are several disadvantages associated with conventional gyro navigation systems. For example, micromachine fabrication facilities are very costly. Thus, there is a high initial development and setup cost related to fabricating gyros. Also, a gyro is only able to report position changes in one dimension. Therefore, a device that reports multiple dimensions would implement a corresponding number of gyros. For example, two gyros would be used to report position in two dimensions (2D). Additionally, current gyro-based controllers are not able to report positional changes along the z-axis extending toward and away from, for example, a gaming display.
There are also some difficulties associated with beacon-based navigation systems. In general, once the beacon 14 is out of the field of view, or out of range, of the image sensor, the image sensor no longer contributes to the navigation of the controller 12. It is for this reason that the gyro is relied on to report gross motion of the controller 12. Additionally, beacon-based navigation systems are also very sensitive to environmental noise such as other light sources 24 within the field of view of the image sensor. In other words, the non-beacon light sources can result in a false reading during the data processing of the beacon image. FIG. 1 illustrates multiple non-beacon light sources 24 (i.e., environmental noise) surrounding the beacon 14 and within the field of view of the image sensor in the controller 12. It can be difficult for the image sensor to differentiate between the beacon light sources 16 and the non-beacon light sources 24. Also, if a weighted algorithm is used, there can be a lag when one of the beacon light sources 16 moves in and out of the field of view of the image sensor.
FIGS. 2 and 3 illustrate another difficulty with conventional beacon navigation systems. In particular, FIGS. 2 and 3 illustrate how movement of the controller 12 can be interpreted on a display 30. It should be noted, generally, that conventional beacon navigation systems are designed for the controller 12 to be aligned with each of the x, y, and z axes 18, 20, and 20 of the navigation system's coordinate system. When the controller 12 is correctly aligned with the navigation system's coordinate system, the display 30 accurately represents the movement of the controller 12. For example, FIG. 2 illustrates an up-and-right movement of the controller 12 as an up-and-right movement on the display 30 when the controller 12 is accurately aligned. However, when the controller 12 is not perfectly aligned with respect to one or more axes 18, 20, and 22, the display 30 recreates a representation of the imperfect movement of the controller 12. For example, FIG. 3 illustrates the controller 12 slightly tilted at an angle, θ, with respect to the y axis 20. Thus, when the controller is at this slight angle, θ, and a user attempts to move the controller 12 in an up-and-right movement, the display 30 shows an accurate, although undesirable, movement tilted at the same angle, θ, even though the user intended to generate an up-and-right movement on the screen. This type of translation without accounting for a slight angular disparity, or tilt, results in restricted usage of beacon-based controllers 12.